#ifndef _NE_SKIN_H_
#define _NE_SKIN_H_

#include <mathematics/Node.h>
#include <graphics/Mesh.h>

namespace ne
{
    class NEAPI Skin : public Object, public Node
    {
        public:
            explicit Skin(const std::string &name);

            size_t getSize() const;

            void setMesh(const MeshPtr &pMesh);

            MeshPtr getMesh() const;

            void setMaterial(const MaterialPtr &pMaterial);

            MaterialPtr getMaterial() const;

            virtual ~Skin();

        protected:
            MeshPtr mpMesh;
            MaterialPtr mpMaterial;
    };

    typedef std::map<std::string, Skin*> SkinMap;
    typedef SkinMap::iterator SkinMapIterator;
    typedef SkinMap::const_iterator SkinMapConstIterator;
}

#endif
